#pragma once

#include "fxcc/core/platform/win32/pch.h"
#include "fxcc/core/platform/win32/App.h"

namespace fxcc
{
    namespace platform
    {
        namespace win32
        {
            struct FXCC_API CallBacks
            {
                static std::unordered_map<int, KeyCode> m_KeyMap;

                static std::unordered_map<int, MouseButton> m_MouseMap;

                static std::unordered_map<int, JoystickButton> m_JoystickMap;

                static win32::App* m_CurrentApp;

                static void Register(struct FXCC_API win32::App* app);

                static LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
            };

        }
    }
};